package com.zone.service.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * 车辆管理对象 zone_vehicle
 * 
 * @author zone
 * @date 2025-10-25
 */
public class Vehicle extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识 */
    private Long id;

    /** 车辆自编号 */
    @Excel(name = "车辆自编号")
    private String seqno;

    /** 车牌号码 */
    @Excel(name = "车牌号码")
    private String lpno;

    /** 车辆型号 */
    @Excel(name = "车辆型号")
    private String model;

    /** 车辆性质 */
    @Excel(name = "车辆性质")
    private Long vhType;

    /** 车辆类型 */
    @Excel(name = "车辆类型")
    private Long vehicleType;

    /** 标准箱数 */
    @Excel(name = "标准箱数")
    private Long standardBoxcount;

    /** 车辆状态 */
    @Excel(name = "车辆状态")
    private Long statusT;

    /** 所属业务 */
    @Excel(name = "所属业务")
    private Long businessType;

    /** 下次维保日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下次维保日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nextMaintainDate;

    /** 是否已维保 */
    @Excel(name = "是否已维保")
    private Long maintainResult;

    /** 所属机构 */
    @Excel(name = "所属机构")
    private Long departmentId;

    /** 车辆年审日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "车辆年审日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examinedDate;

    /** 车辆年审到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "车辆年审到期日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examinedExpiryDate;

    /** 佛山通行证办理日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "佛山通行证办理日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date foshanPermitDate;

    /** 佛山通行证截止期限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "佛山通行证截止期限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date foshanExpiryDate;

    /** 佛山通行证办理内容 */
    @Excel(name = "佛山通行证办理内容")
    private String foshanPermitContent;

    /** 农商中心库通行证办理日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "农商中心库通行证办理日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nongshangPermitDate;

    /** 农商中心库通行证截止期限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "农商中心库通行证截止期限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date nongshangExpiryDate;

    /** 农商中心库通行证办理内容 */
    @Excel(name = "农商中心库通行证办理内容")
    private String nongshangPermitContent;

    /** 取消通行证过期提醒日期（至最后期限前一天） */
    @Excel(name = "取消通行证过期提醒日期", readConverterExp = "至=最后期限前一天")
    private Long permitExpiryReminder;

    /** 钥匙数量（串） */
    private Long keysCount;

    /** 钥匙明细 */
    private String keysDetail;

    /** 在库情况 0-在库 1-任务出库 2-非任务出库 */
    private Long instock;

    /** 当前位置 */
    private String location;

    /** 当前公里数 */
    private Long kilometers;

    /** 钥匙领用人ID，外键关联employees表 */
    private Long keyholderId;

    /** 非任务出库申请人ID，外键关联employees表 */
    //private Long nottaskApplyId;
    /** 非任务出库申请时间 */
    //private Date nottaskApplyTime;
    /** 非任务出库申请事由 */
    //private String nottaskApplyReason;
    /** 非任务出库审批情况 0-未审批 1-审批通过 2-审批未通过 */
    //private Long nottaskApproveStatus;
    /** 非任务出库审批人ID，外键关联employees表 */
    //private Long nottaskApproveId;
    /** 非任务出库审批时间 */
    //private Date nottaskApproveTime;

    /** 车架号 */
    private String frameNumber;

    /** 发动机号 */
    private String engineNumber;

    /** 排放标准 */
    private String emissionStandard;

    /** 出厂日期 */
    private Date productionDate;

    /** 购买日期 */
    private Date enrollDate;

    /** 删除标志 */
    private Long deleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setSeqno(String seqno) 
    {
        this.seqno = seqno;
    }

    public String getSeqno() 
    {
        return seqno;
    }

    public void setLpno(String lpno) 
    {
        this.lpno = lpno;
    }

    public String getLpno() 
    {
        return lpno;
    }

    public void setModel(String model) 
    {
        this.model = model;
    }

    public String getModel() 
    {
        return model;
    }

    public void setVhType(Long vhType) 
    {
        this.vhType = vhType;
    }

    public Long getVhType() 
    {
        return vhType;
    }

    public void setVehicleType(Long vehicleType) 
    {
        this.vehicleType = vehicleType;
    }

    public Long getVehicleType() 
    {
        return vehicleType;
    }

    public void setStandardBoxcount(Long standardBoxcount) 
    {
        this.standardBoxcount = standardBoxcount;
    }

    public Long getStandardBoxcount() 
    {
        return standardBoxcount;
    }

    public void setStatusT(Long statusT) 
    {
        this.statusT = statusT;
    }

    public Long getStatusT() 
    {
        return statusT;
    }

    public void setBusinessType(Long businessType) 
    {
        this.businessType = businessType;
    }

    public Long getBusinessType() 
    {
        return businessType;
    }

    public void setNextMaintainDate(Date nextMaintainDate) 
    {
        this.nextMaintainDate = nextMaintainDate;
    }

    public Date getNextMaintainDate() 
    {
        return nextMaintainDate;
    }

    public void setMaintainResult(Long maintainResult) 
    {
        this.maintainResult = maintainResult;
    }

    public Long getMaintainResult() 
    {
        return maintainResult;
    }

    public void setDepartmentId(Long departmentId) 
    {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() 
    {
        return departmentId;
    }

    public void setExaminedDate(Date examinedDate) 
    {
        this.examinedDate = examinedDate;
    }

    public Date getExaminedDate() 
    {
        return examinedDate;
    }

    public void setExaminedExpiryDate(Date examinedExpiryDate) 
    {
        this.examinedExpiryDate = examinedExpiryDate;
    }

    public Date getExaminedExpiryDate() 
    {
        return examinedExpiryDate;
    }

    public void setFoshanPermitDate(Date foshanPermitDate) 
    {
        this.foshanPermitDate = foshanPermitDate;
    }

    public Date getFoshanPermitDate() 
    {
        return foshanPermitDate;
    }

    public void setFoshanExpiryDate(Date foshanExpiryDate) 
    {
        this.foshanExpiryDate = foshanExpiryDate;
    }

    public Date getFoshanExpiryDate() 
    {
        return foshanExpiryDate;
    }

    public void setFoshanPermitContent(String foshanPermitContent) 
    {
        this.foshanPermitContent = foshanPermitContent;
    }

    public String getFoshanPermitContent() 
    {
        return foshanPermitContent;
    }

    public void setNongshangPermitDate(Date nongshangPermitDate) 
    {
        this.nongshangPermitDate = nongshangPermitDate;
    }

    public Date getNongshangPermitDate() 
    {
        return nongshangPermitDate;
    }

    public void setNongshangExpiryDate(Date nongshangExpiryDate) 
    {
        this.nongshangExpiryDate = nongshangExpiryDate;
    }

    public Date getNongshangExpiryDate() 
    {
        return nongshangExpiryDate;
    }

    public void setNongshangPermitContent(String nongshangPermitContent) 
    {
        this.nongshangPermitContent = nongshangPermitContent;
    }

    public String getNongshangPermitContent() 
    {
        return nongshangPermitContent;
    }

    public void setPermitExpiryReminder(Long permitExpiryReminder) 
    {
        this.permitExpiryReminder = permitExpiryReminder;
    }

    public Long getPermitExpiryReminder() 
    {
        return permitExpiryReminder;
    }

    public void setKeysCount(Long keysCount) 
    {
        this.keysCount = keysCount;
    }

    public Long getKeysCount() 
    {
        return keysCount;
    }

    public void setKeysDetail(String keysDetail) 
    {
        this.keysDetail = keysDetail;
    }

    public String getKeysDetail() 
    {
        return keysDetail;
    }

    public void setInstock(Long instock) 
    {
        this.instock = instock;
    }

    public Long getInstock() 
    {
        return instock;
    }

    public void setLocation(String location) 
    {
        this.location = location;
    }

    public String getLocation() 
    {
        return location;
    }

    public void setKilometers(Long kilometers)
    {
        this.kilometers = kilometers;
    }

    public Long getKilometers()
    {
        return kilometers;
    }

    public void setKeyholderId(Long keyholderId) 
    {
        this.keyholderId = keyholderId;
    }

    public Long getKeyholderId() 
    {
        return keyholderId;
    }

    /*public void setNottaskApplyId(Long nottaskApplyId)
    {
        this.nottaskApplyId = nottaskApplyId;
    }
    public Long getNottaskApplyId() 
    {
        return nottaskApplyId;
    }
    public void setNottaskApplyTime(Date nottaskApplyTime) 
    {
        this.nottaskApplyTime = nottaskApplyTime;
    }
    public Date getNottaskApplyTime() 
    {
        return nottaskApplyTime;
    }
    public void setNottaskApplyReason(String nottaskApplyReason) 
    {
        this.nottaskApplyReason = nottaskApplyReason;
    }
    public String getNottaskApplyReason() 
    {
        return nottaskApplyReason;
    }
    public void setNottaskApproveStatus(Long nottaskApproveStatus) 
    {
        this.nottaskApproveStatus = nottaskApproveStatus;
    }
    public Long getNottaskApproveStatus() 
    {
        return nottaskApproveStatus;
    }
    public void setNottaskApproveId(Long nottaskApproveId) 
    {
        this.nottaskApproveId = nottaskApproveId;
    }
    public Long getNottaskApproveId() 
    {
        return nottaskApproveId;
    }
    public void setNottaskApproveTime(Date nottaskApproveTime) 
    {
        this.nottaskApproveTime = nottaskApproveTime;
    }
    public Date getNottaskApproveTime() 
    {
        return nottaskApproveTime;
    }*/

    public void setFrameNumber(String frameNumber) 
    {
        this.frameNumber = frameNumber;
    }

    public String getFrameNumber() 
    {
        return frameNumber;
    }

    public void setEngineNumber(String engineNumber) 
    {
        this.engineNumber = engineNumber;
    }

    public String getEngineNumber() 
    {
        return engineNumber;
    }

    public void setEmissionStandard(String emissionStandard) 
    {
        this.emissionStandard = emissionStandard;
    }

    public String getEmissionStandard() 
    {
        return emissionStandard;
    }

    public void setProductionDate(Date productionDate) 
    {
        this.productionDate = productionDate;
    }

    public Date getProductionDate() 
    {
        return productionDate;
    }

    public void setEnrollDate(Date enrollDate) 
    {
        this.enrollDate = enrollDate;
    }

    public Date getEnrollDate() 
    {
        return enrollDate;
    }

    public void setDeleted(Long deleted) 
    {
        this.deleted = deleted;
    }

    public Long getDeleted() 
    {
        return deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("seqno", getSeqno())
            .append("lpno", getLpno())
            .append("model", getModel())
            .append("vhType", getVhType())
            .append("vehicleType", getVehicleType())
            .append("standardBoxcount", getStandardBoxcount())
            .append("statusT", getStatusT())
            .append("businessType", getBusinessType())
            .append("nextMaintainDate", getNextMaintainDate())
            .append("maintainResult", getMaintainResult())
            .append("departmentId", getDepartmentId())
            .append("examinedDate", getExaminedDate())
            .append("examinedExpiryDate", getExaminedExpiryDate())
            .append("foshanPermitDate", getFoshanPermitDate())
            .append("foshanExpiryDate", getFoshanExpiryDate())
            .append("foshanPermitContent", getFoshanPermitContent())
            .append("nongshangPermitDate", getNongshangPermitDate())
            .append("nongshangExpiryDate", getNongshangExpiryDate())
            .append("nongshangPermitContent", getNongshangPermitContent())
            .append("permitExpiryReminder", getPermitExpiryReminder())
            .append("keysCount", getKeysCount())
            .append("keysDetail", getKeysDetail())
            .append("instock", getInstock())
            .append("location", getLocation())
            .append("kilometers", getKilometers())
            .append("keyholderId", getKeyholderId())
//            .append("nottaskApplyId", getNottaskApplyId())
//            .append("nottaskApplyTime", getNottaskApplyTime())
//            .append("nottaskApplyReason", getNottaskApplyReason())
//            .append("nottaskApproveStatus", getNottaskApproveStatus())
//            .append("nottaskApproveId", getNottaskApproveId())
//            .append("nottaskApproveTime", getNottaskApproveTime())
            .append("frameNumber", getFrameNumber())
            .append("engineNumber", getEngineNumber())
            .append("emissionStandard", getEmissionStandard())
            .append("productionDate", getProductionDate())
            .append("enrollDate", getEnrollDate())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("deleted", getDeleted())
            .toString();
    }
}
